function createFish(num) {
  var fish1 = [{
    x: 0,
    y: 0,
    w: 55,
    h: 29
  }, {
    x: 0,
    y: 37,
    w: 55,
    h: 27
  }, {
    x: 0,
    y: 74,
    w: 55,
    h: 28
  }, {
    x: 0,
    y: 111,
    w: 55,
    h: 29
  }, {
    x: 0,
    y: 154,
    w: 55,
    h: 29
  }, {
    x: 0,
    y: 186,
    w: 55,
    h: 29
  }, {
    x: 0,
    y: 221,
    w: 55,
    h: 29
  }, {
    x: 0,
    y: 263,
    w: 55,
    h: 29
  }];
  var fish2 = [{
      x: 0,
      y: 0,
      w: 78,
      h: 64
    }, {
      x: 0,
      y: 64,
      w: 78,
      h: 64
    }, {
      x: 0,
      y: 128,
      w: 78,
      h: 64
    },
    {
      x: 0,
      y: 192,
      w: 78,
      h: 64
    }, {
      x: 0,
      y: 256,
      w: 78,
      h: 64
    }, {
      x: 0,
      y: 320,
      w: 78,
      h: 64
    }, {
      x: 0,
      y: 384,
      w: 78,
      h: 64
    }, {
      x: 0,
      y: 484,
      w: 78,
      h: 64
    },
  ]
  var fish3 = [{
      x: 0,
      y: 0,
      w: 72,
      h: 56
    }, {
      x: 0,
      y: 56,
      w: 72,
      h: 56
    }, {
      x: 0,
      y: 112,
      w: 72,
      h: 56
    },
    {
      x: 0,
      y: 168,
      w: 72,
      h: 56
    }, {
      x: 0,
      y: 224,
      w: 72,
      h: 56
    }, {
      x: 0,
      y: 288,
      w: 72,
      h: 56
    }, {
      x: 0,
      y: 344,
      w: 72,
      h: 56
    }, {
      x: 0,
      y: 400,
      w: 72,
      h: 56
    },
  ]
  var fish4 = [{
      x: 0,
      y: 0,
      w: 78,
      h: 59
    }, {
      x: 0,
      y: 59,
      w: 78,
      h: 59
    }, {
      x: 0,
      y: 118,
      w: 78,
      h: 59
    },
    {
      x: 0,
      y: 177,
      w: 78,
      h: 59
    }, {
      x: 0,
      y: 236,
      w: 78,
      h: 59
    }, {
      x: 0,
      y: 295,
      w: 78,
      h: 59
    }, {
      x: 0,
      y: 354,
      w: 78,
      h: 59
    }, {
      x: 0,
      y: 413,
      w: 78,
      h: 59
    },
  ]
  var fish5 = [{
      x: 0,
      y: 0,
      w: 107,
      h: 122
    }, {
      x: 0,
      y: 122,
      w: 107,
      h: 122
    }, {
      x: 0,
      y: 244,
      w: 107,
      h: 122
    }, {
      x: 0,
      y: 366,
      w: 107,
      h: 122
    },
    {
      x: 0,
      y: 488,
      w: 107,
      h: 122
    }, {
      x: 0,
      y: 610,
      w: 107,
      h: 122
    }, {
      x: 0,
      y: 732,
      w: 107,
      h: 122
    }, {
      x: 0,
      y: 854,
      w: 107,
      h: 122
    }
  ]
  var fish6 = [{
      x: 0,
      y: 0,
      w: 107,
      h: 79
    }, {
      x: 0,
      y: 79,
      w: 107,
      h: 79
    }, {
      x: 0,
      y: 158,
      w: 107,
      h: 79
    }, {
      x: 0,
      y: 237,
      w: 107,
      h: 79
    },
    {
      x: 0,
      y: 316,
      w: 107,
      h: 79
    }, {
      x: 0,
      y: 395,
      w: 107,
      h: 79
    }, {
      x: 0,
      y: 474,
      w: 107,
      h: 79
    }, {
      x: 0,
      y: 553,
      w: 107,
      h: 79
    },
    {
      x: 0,
      y: 632,
      w: 107,
      h: 79
    }, {
      x: 0,
      y: 711,
      w: 107,
      h: 79
    }, {
      x: 0,
      y: 790,
      w: 107,
      h: 79
    }, {
      x: 0,
      y: 869,
      w: 107,
      h: 79
    }
  ]
  var fish7 = [{
      x: 1359,
      y: 0,
      w: 151,
      h: 92
    }, {
      x: 151 * 8,
      y: 0,
      w: 151,
      h: 92
    }, {
      x: 151 * 7,
      y: 0,
      w: 151,
      h: 92
    }, {
      x: 151 * 6,
      y: 0,
      w: 151,
      h: 92
    },
    {
      x: 151 * 5,
      y: 0,
      w: 151,
      h: 92
    }, {
      x: 151 * 4,
      y: 0,
      w: 151,
      h: 92
    }, {
      x: 151 * 3,
      y: 0,
      w: 151,
      h: 92
    }, {
      x: 151 * 2,
      y: 0,
      w: 151,
      h: 92
    },
    {
      x: 151,
      y: 0,
      w: 151,
      h: 92
    }, {
      x: 0,
      y: 0,
      w: 151,
      h: 92
    }
  ]
  var fish8 = [{
      x: 0,
      y: 0,
      w: 174,
      h: 126
    }, {
      x: 0,
      y: 126,
      w: 174,
      h: 126
    }, {
      x: 0,
      y: 126 * 2,
      w: 174,
      h: 126
    }, {
      x: 0,
      y: 126 * 3,
      w: 174,
      h: 126
    }, {
      x: 0,
      y: 126 * 4,
      w: 174,
      h: 126
    },
    {
      x: 0,
      y: 126 * 5,
      w: 174,
      h: 126
    }, {
      x: 0,
      y: 126 * 6,
      w: 174,
      h: 126
    }, {
      x: 0,
      y: 126 * 7,
      w: 174,
      h: 126
    }, {
      x: 0,
      y: 126 * 8,
      w: 174,
      h: 126
    },
    {
      x: 0,
      y: 126 * 9,
      w: 174,
      h: 126
    }, {
      x: 0,
      y: 126 * 10,
      w: 174,
      h: 126
    }, {
      x: 0,
      y: 126 * 11,
      w: 174,
      h: 126
    }
  ]
  var fish9 = [{
      x: 0,
      y: 0,
      w: 166,
      h: 183
    }, {
      x: 0,
      y: 183,
      w: 166,
      h: 183
    }, {
      x: 0,
      y: 183 * 2,
      w: 166,
      h: 183
    }, {
      x: 0,
      y: 183 * 3,
      w: 166,
      h: 183
    }, {
      x: 0,
      y: 183 * 4,
      w: 166,
      h: 183
    },
    {
      x: 0,
      y: 183 * 5,
      w: 166,
      h: 183
    }, {
      x: 0,
      y: 183 * 6,
      w: 166,
      h: 183
    }, {
      x: 0,
      y: 183 * 7,
      w: 166,
      h: 183
    }, {
      x: 0,
      y: 183 * 8,
      w: 166,
      h: 183
    },
    {
      x: 0,
      y: 183 * 9,
      w: 166,
      h: 183
    }, {
      x: 0,
      y: 183 * 10,
      w: 166,
      h: 183
    }, {
      x: 0,
      y: 183 * 11,
      w: 166,
      h: 183
    }
  ]
  var fish10 = [{
      x: 0,
      y: 0,
      w: 178,
      h: 151
    }, {
      x: 0,
      y: 187,
      w: 178,
      h: 187
    }, {
      x: 0,
      y: 187 * 2,
      w: 178,
      h: 187
    }, {
      x: 0,
      y: 187 * 3,
      w: 178,
      h: 187
    },
    {
      x: 0,
      y: 187 * 4,
      w: 178,
      h: 187
    }, {
      x: 0,
      y: 187 * 5,
      w: 178,
      h: 187
    }, {
      x: 0,
      y: 187 * 6,
      w: 178,
      h: 187
    }, {
      x: 0,
      y: 187 * 7,
      w: 178,
      h: 187
    },
    {
      x: 0,
      y: 187 * 8,
      w: 178,
      h: 187
    }, {
      x: 0,
      y: 187 * 9,
      w: 178,
      h: 187
    }
  ]
  var fish11 = [{
      x: 0,
      y: 0,
      w: 509,
      h: 270
    }, {
      x: 0,
      y: 270,
      w: 509,
      h: 270
    }, {
      x: 0,
      y: 270 * 2,
      w: 509,
      h: 270
    }, {
      x: 0,
      y: 270 * 3,
      w: 509,
      h: 270
    }, {
      x: 0,
      y: 270 * 4,
      w: 509,
      h: 270
    },
    {
      x: 0,
      y: 270 * 5,
      w: 509,
      h: 270
    }, {
      x: 0,
      y: 270 * 6,
      w: 509,
      h: 270
    }, {
      x: 0,
      y: 270 * 7,
      w: 509,
      h: 270
    }, {
      x: 0,
      y: 270 * 8,
      w: 509,
      h: 270
    },
    {
      x: 0,
      y: 270 * 9,
      w: 509,
      h: 270
    }, {
      x: 0,
      y: 270 * 10,
      w: 509,
      h: 270
    }, {
      x: 0,
      y: 270 * 11,
      w: 509,
      h: 270
    }
  ]
  var fish12 = [{
      x: 0,
      y: 0,
      w: 516,
      h: 273
    }, {
      x: 0,
      y: 270,
      w: 516,
      h: 273
    }, {
      x: 0,
      y: 273 * 2,
      w: 516,
      h: 273
    }, {
      x: 0,
      y: 273 * 3,
      w: 516,
      h: 273
    }, {
      x: 0,
      y: 273 * 4,
      w: 516,
      h: 273
    },
    {
      x: 0,
      y: 273 * 5,
      w: 516,
      h: 273
    }, {
      x: 0,
      y: 273 * 6,
      w: 516,
      h: 273
    }, {
      x: 0,
      y: 270 * 7,
      w: 516,
      h: 270
    }, {
      x: 0,
      y: 273 * 8,
      w: 509,
      h: 273
    },
    {
      x: 0,
      y: 273 * 9,
      w: 516,
      h: 273
    }, {
      x: 0,
      y: 273 * 10,
      w: 516,
      h: 273
    }, {
      x: 0,
      y: 273 * 11,
      w: 516,
      h: 273
    }
  ]
  var fish = new Fish({
    url: "img/fish" + num + ".png"
  }, eval("fish" + num));
  return fish;
}
// createFish();

function Fish(option, cells) {
  BgSprite.apply(this, arguments);
  this.speedx = option.speedx || 10;
  this.speedy = option.speedy || 10;
  this.index = option.index || 0;
  this.cells = cells;
  this.change = 0;
  this.randomY = random(0, canvas.height);
  this.randomX = random(0, canvas.width);
  this.rotateType1 = RandFloat(0, Math.PI);
  this.rotateType2 = RandFloat(Math.PI / 2, Math.PI * 1.5);
  this.rotateType3 = RandFloat(Math.PI, Math.PI * 2);
  this.rotateType4 = RandFloat(-0.5 * Math.PI, Math.PI * 0.5);
  this.randomPos = random(0, 3);
  this.crashX;
  this.crashY;
  this.flag = true;
}
Fish.prototype.draw = function() {
  ctx.save();
  if (this.randomPos == 0) {
    ctx.translate(this.randomX, 0);
    ctx.rotate(this.rotateType1);
    this.crashX = this.randomX + Math.cos(this.rotateType1) * this.Cx;
    this.crashY = Math.sin(this.rotateType1) * this.Cx;
  } else if (this.randomPos == 1) {
    ctx.translate(canvas.width, this.randomY);
    ctx.rotate(this.rotateType2);
    this.crashX = canvas.width + Math.cos(this.rotateType2) * this.Cx;
    this.crashY = this.randomY + Math.sin(this.rotateType2) * this.Cx;
  } else if (this.randomPos == 2) {
    ctx.translate(0, this.randomY);
    ctx.rotate(this.rotateType4);
    this.crashY = this.randomY + Math.sin(this.rotateType4) * this.Cx;
    this.crashX = Math.cos(this.rotateType4) * this.Cx;
  }
  // else if (this.randomPos == 2) {
  //   ctx.translate(this.randomX, canvas.height);
  //   ctx.rotate(this.rotateType3);
  //   this.crashX = this.randomX + Math.cos(this.rotateType3) * this.Cx;
  //   this.crashY = canvas.height + Math.sin(this.rotateType3) * this.Cx;
  //   // alert(this.crashX+"+"+this.crashY);
  // }
  // ctx.translate(this.randomX,this.randomY);
  // ctx.rotate(this.rotate);
  ctx.drawImage(this.img, this.cells[this.index].x, this.cells[this.index].y, this.cells[this.index].w, this.cells[this.index].h, this.Cx - this.cells[this.index].w, this.Cy, this.cells[this.index].w, this.cells[this.index].h);
  ctx.restore();

}
Fish.prototype.update = function() {
  // this.mx += this.speedx;
  // this.my += this.speedy;

  if (this.change % 10 == 0) {
    this.index++;
    if (this.index > 3) {
      this.index = 0;
    }
  }
  this.Cx += 1;
  this.change++;
}
Fish.prototype.AnotherFish = function() {
  if (this.change % 10 == 0) {
    this.index++;
    if (this.index > 5) {
      this.index = 0;
    }
  }
  this.Cx += 1;
  this.change++;
}

function RandFloat(min, max) {
  return parseFloat(Math.random() * (max - min) + min);
}
